//
// Created by pengtg on 2020/2/23.
//

#ifndef ANDROIDVIDEOPLAYER_XTEXTURE_H
#define ANDROIDVIDEOPLAYER_XTEXTURE_H
enum XTextureType
{
    XTEXTURE_YUV420P = 0,  // Y 4 u 1 v1
    XTEXTURE_NV12 = 25,    //Y4   uv1
    XTEXTURE_NV21 = 26     //Y4   vu1
};

class XTexture
{
public:
    static XTexture *Create();
    virtual bool Init(void *win,XTextureType type=XTEXTURE_YUV420P) = 0;
    virtual void Draw(unsigned char *data[],int width,int height) = 0;
    virtual void Drop() = 0;
    //析构函数一定要设成virtual，因为虚构函数后面可能会添加内容，
    // 析构函数如果我们自己删除自己的时候，就是通过父类指针来删除
    // 的时候，不一定能调用到相应的析构函数，所以只有当析构函数要
    // 放到虚函数指针当中才可以。
    virtual ~XTexture(){};
protected:
    XTexture(){};
};


#endif //ANDROIDVIDEOPLAYER_XTEXTURE_H
